<!DOCTYPE html>
<html xmlns="http://www.w3c.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:p="http://primefaces.org/ui" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough" xmlns:c="http://java.sun.com/jsp/jstl/core">

<ui:decorate id="msrpDecoration" template="/resources/template/template-crud.xhtml">

  <ui:param name="title" value="Usuário" />

  <ui:param name="managedBean" value="#{usuarioBean}" />

  <ui:define name="botaoTopCadastro">

  </ui:define>

  <ui:define name="botaoTopExclusao">

  </ui:define>

  <ui:define name="parametroConsulta">

  </ui:define>

  <ui:define name="tabelaDados">

    <p:column headerText="Login">
      <h:outputText styleClass="fonte" value="#{beanEnt.login}" />
    </p:column>
    <p:column headerText="Apelido">
      <h:outputText styleClass="fonte" value="#{beanEnt.apelido}" />
    </p:column>
    <p:column headerText="CPF">
      <h:outputText styleClass="fonte" value="#{beanEnt.cpf}" >
      	<f:converter converterId="cpfConverter" />
      </h:outputText>
    </p:column>
    <p:column headerText="Nome Completo">
      <h:outputText styleClass="fonte" value="#{beanEnt.nomeCompleto}" />
    </p:column>

  </ui:define>

	<ui:define name="botaoExtraTabela">
		<h:commandButton actionListener="#{usuarioBean.prepareChangePassword}"
			styleClass="btnCadeado">
			<f:ajax render="frmDados:panelTemplate" />
		</h:commandButton>
	</ui:define>

	<ui:define name="formCadastro">

		<h:panelGroup rendered="#{!usuarioBean.alterarSenhaState}">
			<h:panelGrid columns="2" columnClasses="colunas">
				<h:outputLabel styleClass="fonte" value="Login" />
				<h:inputText id="login_none" styleClass="none-case"
					value="#{usuarioBean.entity.login}" required="true"
					requiredMessage="Login é requerido." />

				<h:outputLabel styleClass="fonte" value="Senha"
					rendered="#{managedBean.state eq 'incluir'}" />
				<h:inputSecret value="#{usuarioBean.entity.senha}" required="true"
					requiredMessage="A Senha é requerida."
					rendered="#{managedBean.state eq 'incluir'}" />

				<h:outputLabel styleClass="fonte" value="Apelido" />
				<h:inputText value="#{usuarioBean.entity.apelido}" required="true"
					requiredMessage="Apelido é requerido." />

				<h:outputLabel styleClass="fonte" value="Email" />
				<h:inputText id="email_lower" styleClass="lower-case"
					value="#{usuarioBean.entity.email}" required="true"
					requiredMessage="Email é requerido.">
					<f:validator
						validatorId="br.com.ac.fatureweb.utilitary.validator.EmailValidator" />
				</h:inputText>

				<h:outputLabel styleClass="fonte" value="CPF" />
				<p:inputMask mask="999.999.999-99" value="#{usuarioBean.entity.cpf}"
					required="true" requiredMessage="CPF é requerido.">
					<f:converter converterId="cpfConverter" />
					<f:validator
						validatorId="br.com.ac.fatureweb.utilitary.validator.CPFValidator" />
				</p:inputMask>

				<h:outputLabel styleClass="fonte" value="Nome completo" />
				<h:inputText value="#{usuarioBean.entity.nomeCompleto}"
					required="true" requiredMessage="Nome completo é requerido." />

				<h:outputLabel styleClass="fonte" value="Status"
					rendered="#{usuarioBean.state eq 'alterar'}" />
				<h:selectOneMenu value="#{usuarioBean.entity.status}"
					rendered="#{usuarioBean.state eq 'alterar'}" required="true"
					requiredMessage="Status é requerido.">
					<f:selectItems var="_status" itemValue="#{_status}"
						itemLabel="#{_status.descricao}"
						value="#{usuarioBean.lstEnumStatus}" />
				</h:selectOneMenu>
			</h:panelGrid>

			<h:panelGroup id="pnlPerfilAcao" layout="block"
				style="margin-top:10px;">

				<p:dataTable id="tblPerfilAcao" var="_perfilAcao"
					rowKey="#{_perfilAcao.id}" paginator="true" rows="10"
					selection="#{usuarioBean.selectedPerfilAcaoRemover}"
					emptyMessage="Não existem perfil/ações associados."
					value="#{usuarioBean.entity.lstPerfilAcao}"
					paginatorPosition="bottom">

					<f:facet name="header">
						<h:outputText value="Permissões" />
					</f:facet>

					<p:column selectionMode="multiple" width="5%"
						style="text-align:center;" />

					<p:column headerText="Perfil" width="60%"
						style="text-align:center;">
						<h:outputText styleClass="fonte"
							value="#{_perfilAcao.perfil.nome}" />
					</p:column>

					<p:column headerText="Ação" width="40%">
						<h:outputText styleClass="fonte" value="#{_perfilAcao.acao}" />
					</p:column>

					<f:facet name="footer">
						<h:panelGroup styleClass="pull-left" style="margin-top:-35px"
							layout="block">
							<p:commandButton id="btnAddItens"
								icon="ui-icon ui-icon-circle-plus" process="@this"
								update=":frmDados:dlgAddItem" value="Adicionar Itens"
								actionListener="#{usuarioBean.buscarPerfisAcaoDesassociados}"
								oncomplete="PF('dialogAddItem').show();" />

							<p:commandButton id="btnExcluirItens"
								icon="ui-icon ui-icon-trash" process=":frmDados:pnlPerfilAcao"
								update=":frmDados:panelTemplate"
								value="Excluir Itens Selecionados"
								actionListener="#{usuarioBean.desassociarPerfisAcao}" />
						</h:panelGroup>
					</f:facet>

				</p:dataTable>
			</h:panelGroup>

		</h:panelGroup>

		<p:dialog id="dlgAddItem" widgetVar="dialogAddItem" 
	  			header="Adicionar ações" modal="true" >

			<p:dataTable id="tblAcoesAdicionar" var="_acao" rowKey="#{_acao.id}"
				paginator="true" rows="10"
				selection="#{usuarioBean.selectedPerfilAcaoAdicionar}"
				emptyMessage="Todas as ações já foram associadas."
				value="#{usuarioBean.lstPerfilAcaoNaoAssociados}">

				<p:column selectionMode="multiple" width="5%"
					style="text-align:center;" />

				<p:column headerText="Perfil" width="60%" style="text-align:center;">
					<h:outputText styleClass="fonte" value="#{_acao.perfil.nome}" />
				</p:column>

				<p:column headerText="Ação" width="40%">
					<h:outputText styleClass="fonte" value="#{_acao.acao}" />
				</p:column>

				<f:facet name="footer">
					<h:panelGroup styleClass="pull-left" style="margin-top:-35px"
						layout="block">
						<p:commandButton id="btnAddItens"
							icon="ui-icon ui-icon-circle-plus" process=":frmDados:dlgAddItem"
							update=":frmDados:tblPerfilAcao" 
							actionListener="#{usuarioBean.associarPerfisAcao}"
							oncomplete="PF('dialogAddItem').hide();"
							value="Adicionar Itens Selecionados" />
					</h:panelGroup>
				</f:facet>

			</p:dataTable>
		</p:dialog>
	
		<h:panelGroup rendered="#{usuarioBean.alterarSenhaState}">
		
			<h:panelGrid columns="2" columnClasses="colunas">
				<h:outputLabel styleClass="fonte" value="Senha" />
				<h:inputSecret value="#{usuarioBean.entity.senha}" required="true" requiredMessage="A Senha é requerida." />
			</h:panelGrid>
			
		</h:panelGroup>

  </ui:define>

  <ui:define name="formExclusao">

  </ui:define>

</ui:decorate>

</html>